package cn.wolfcode.trip.base.service;

import cn.wolfcode.trip.base.domain.StrategyComment;
import cn.wolfcode.trip.base.domain.StrategyLike;
import cn.wolfcode.trip.base.query.LikeQueryObject;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface IStrategyLikeService {

    /**
     * 用户点赞的时候保存关系
     * @param strategyLike 用户点赞对象
     */
    void save(StrategyLike strategyLike);

    /**
     * 判断当前用户是否点赞过该攻略
     * @param strategyId 大攻略的id
     */
    Boolean getUserForLike(Long strategyId);

    void deleteUserForLike(Long strategyId);

    /**
     * 保存用户点赞评论的信息
     * @param strategyLike
     */

    void saveCommentLike(StrategyLike strategyLike);

    /**
     * 取消评论点赞
     * @param commentId
     */
    void deleteCommentForLike(Long commentId);

    /**
     * 判断当前用户是否点赞过该评论
     * @param commentId
     * @return
     */
    Boolean getCommentForLike(Long commentId);

    /**
     * 获取先赞我的,且为读的消息条数
     * @param userId 当前用户的id
     * @return 点赞条数
     */
    int countForLikeMe(Long userId);

    /**
     * 获取当前用户的点赞数量
     * @param qo
     * @return
     */
    PageInfo<StrategyLike> selectListForLikeUser(LikeQueryObject qo);

    /**
     * 获取评论我的纤细条数
     * @param userId 用户的id
     * @return 评论我的信息条数
     */
    int countForCommentMe(Long userId);

}
